#ifndef __PACKET_H__
#define __PACKET_H__
#include <stdint.h>

const int MAX_PKT_LEN = 30000; //最大包长度，还要预留一些，最好包头+包体不能大于29000
const int DATA_BUFSIZE = 20; //这个数值，用来定义一个固定大小的数组来预处理包头

//收包的状态枚举量
enum pktStatus {
    HEADINIT = 0, //准备接收包头
    HEADRECV, //接收包头中
    BODYINIT, //包头接收完毕，准备接收包体
    BODYRECV //包体接收中，完成后回到HEADINIT状态
};

#pragma pack(1)

typedef struct __PKT_HEADER {
    uint16_t        pktLen; //2个字节存储包头长度
    uint16_t        msgCode; //消息类型代码，用于区别不同的消息
    int             crc32; //32位校验位，纠错用的
} PKT_HEADER, *pPKT_HEADER;

#pragma pack()

#endif // __PACKET_H__